package com.facade;

import java.io.Serializable;
import java.util.List;

import com.dao.ConvenioDAO;
import com.model.Convenio;

public class ConvenioFacade implements Serializable{
	private static final long serialVersionUID = 1L;
	
	private ConvenioDAO convenioDAO = new ConvenioDAO();

	public void createConvenio(Convenio convenio) {
		convenioDAO.beginTransaction();
		convenioDAO.save(convenio);
		convenioDAO.commitAndCloseTransaction();
	}

	public void updateConvenio(Convenio convenio) {
		convenioDAO.beginTransaction();
		Convenio persistedConvenio = convenioDAO.find(convenio.getId());
		
		persistedConvenio.setContribuicao(convenio.getContribuicao());
		persistedConvenio.setEmpresa(convenio.getEmpresa());
		persistedConvenio.setInicio(convenio.getInicio());
		persistedConvenio.setTermino(convenio.getTermino());
		
		convenioDAO.update(persistedConvenio);
		convenioDAO.commitAndCloseTransaction();
	}

	public Convenio findConvenio(int convenioId) {
		convenioDAO.beginTransaction();
		Convenio convenio = convenioDAO.find(convenioId);
		convenioDAO.closeTransaction();
		return convenio;
	}

	public List<Convenio> listAll() {
		convenioDAO.beginTransaction();
		List<Convenio> result = convenioDAO.findAll();
		convenioDAO.closeTransaction();
		return result;
	}

	public void deleteConvenio(Convenio convenio) {
		convenioDAO.beginTransaction();
		Convenio persistedConvenio = convenioDAO.findReferenceOnly(convenio.getId());
		convenioDAO.delete(persistedConvenio);
		convenioDAO.commitAndCloseTransaction();
	}
}